package com.mgetool.ui.page;

import java.util.Stack;
/**
 * pageView 管理类
 * @author Administrator
 *
 */
public class PageManager {
	private Stack<PageViewInterface> pageViewManger = new Stack<PageViewInterface>();
	
	/**
	 * 弹出堆栈顶部一个对象，并清除
	 */
	public void pop(){
		PageViewInterface pageViewInterface = pageViewManger.pop();
		pageViewInterface.onDestroyed();
	}
	
	public void pop(PageViewInterface pageViewInterface){
		pageViewInterface.onDestroyed();
		pageViewManger.removeElement(pageViewInterface);
	}
	
	/**
	 * 将一个显示对象压入堆栈顶部
	 * @param pageViewInterface
	 */

	public void push(PageViewInterface pageViewInterface){
		pageViewManger.push(pageViewInterface);
	}
	
	/**
	 * 从堆栈顶部取出一个显示对象，但不清除该对象
	 * @return
	 */
	public PageViewInterface peak(){
		synchronized (pageViewManger) {
			if(!pageViewManger.isEmpty()){
				return pageViewManger.peek();
			}
		}
		return null;
	}
	
	/**
	 * 堆栈管理中是否为空
	 * @return
	 */
	
	public boolean isEmpty(){
		return pageViewManger.empty();
	}
	
	/**
	 * 清除堆栈中所有对象
	 */
	public void popAll(){
		for(int i = pageViewManger.size() - 1; i >= 0 ; i--){
			PageViewInterface pageViewInterface = pageViewManger.elementAt(i);
			pageViewInterface.onDestroyed();
			pageViewManger.removeElementAt(i);
		}
	}
}
